package com.itheima.digui;
/*
 int[] arr = {6, 1, 2, 7, 9, 3, 4, 5, 10, 8};
 快排s
    找一个基准数
    循环  先右后左
    右边找比基准数小的
    左边找比基准数大的
    互换位置
    结束条件  后=前

 */
public class Test03 {

    public static void main(String[] args) {
        int[] arr = {6, 1, 2, 7, 9, 3, 4, 5, 10, 8};
        kuaiPai(arr,0,9);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }


    //定义方法  给一个数组  起始索引   最终索引
    //返回 void
    public static void kuaiPai(int[] arr,int start ,int end){
        //停止条件
        if(end<start){
            return;
        }
        int start0= start;
        int end0= end;
        //   找一个基准数
        int jizhun= arr[start0];
        //    循环  先右后左
        while(end!=start){  //    结束条件  后=前
            //arr[start]  arr[end]  start  end
            //    右边找比基准数小的
            while(arr[end]>=jizhun&&start<end){
                end--;

            }
            //    左边找比基准数大的
            while(arr[start]<=jizhun&&start<end){
                start++;
            }
            //    互换位置
            int temp= arr[start];
            arr[start]=arr[end];
            arr[end]=temp;

        }
        //基准数归位
        int temp= arr[start];
        arr[start]=jizhun;
        arr[start0]=temp;
        //左边继续
        kuaiPai(arr,start0,start-1);
        //右边继续
kuaiPai(arr,start+1,end0);


    }

}
